/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
package openbackup.data.access.framework.core.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import openbackup.data.access.framework.core.entity.ReplicationPlanEntity;

import org.springframework.stereotype.Component;

/**
 * Replication Plan Entity Dao
 *
 */
@Component
public interface ReplicationPlanEntityDao extends BaseMapper<ReplicationPlanEntity> {
    /**
     * find replication plan entity
     *
     * @param resourceId resource id
     * @param targetClusterId target cluster id
     * @return replication plan entity
     */
    default ReplicationPlanEntity find(String resourceId, String targetClusterId) {
        LambdaQueryWrapper<ReplicationPlanEntity> wrapper =
            new LambdaQueryWrapper<ReplicationPlanEntity>().eq(ReplicationPlanEntity::getResourceId, resourceId)
                .eq(ReplicationPlanEntity::getTargetClusterId, targetClusterId);
        return selectOne(wrapper);
    }
}
